# # 删除元素
l15 = ['a', 'b', 'c', 'd']
l15.remove('a')
print(l15)
# 如果元素不在列表中，删除元素时会报错
# l15.remove('f')

# pop（）方法用删除列表中指定索引处的元素
l16 = [10, 56, 34, 2, 56, 44, 7]
# 删除索引为3的元素
l16.pop(3)
print(l16)
# 删除最后一个元素
l16.pop()
print(l16)

# del 可以用来删除列表中单个元素或者一段连续的元素。
l17 = ['a', 'b', 'c', 'd', 'e']
# 删除索引为1 的元素
del l17[1]
print(l17)
l18 = [10, 56, 34, 2, 58, 44, 7]
# 删除索引为1-3的元素
del l18[1:4]
print(l18)

# 若将列表中所有元素全部删除，可使用列表的clear() 方法
l19 = ['a', 'b', 'c', 'a']
# 清空列表
l19.clear()
print(l19)


# 任务
# 创建两个空列表name-list和phone-list，用于储存联系人姓名和电话；
# 向列表中添加联系人信息；
# 输入联系人编号修改信息；
# 输入联系人编号删除信息；
# # 使用clear()清空通讯录。
name_list = []
phone_list = []
while 1:
    print("菜单：1.添加联系人 2.修改联系人 3.删除联系人")
    chioce = input("请输入选择")
    # 1.添加联系人，包括姓名，手机号
    if chioce == "1":
        name_list.append(input("请输入联系人姓名："))
        phone_list.append(input("请输入联系人手机号"))
        print(name_list)
        print(phone_list)
        # 2.修改联系人信息
    elif chioce == "2":
        num = int(input("请输入联系人编号"))
 if len(name_list) > 0 and num <= len(name_list):
            name_list[num - 1] = input("修改联系人姓名")
            phone_list[num - 1] = input("修改联系电话")
        else:
            print("联系人编号有误")
    # 3 删除联系人信息
    elif chioce == "3":
        num = int(input("请输入联系人编号："))
        if len(name_list ) > 0 and num <= len(name_list):
            name_list.pop(num-1)
            phone_list.pop(num - 1)
        else:
            print("联系人编号有误")
    else:
        print("显示联系人信息")
        print(name_list)
        print(phone_list)


# 查找元素 index( ) 列表名.index[要查找的元素，索引起始位置，索引结束位置]
# ls1 = [2, 3 ,5, 7 ,8,  'a',0,  'b', 'a', 'b',  3]
# print(ls1,index(3))
# print(ls1.index('b', 6, 9)
# print(ls1.index('a', 7)

# # count( ) 方法用来统计某个元素在列表中出现的次数 列表名.count(统计的value元素）
ls2 = [1, 3, 5, 7, 'a', 'b', 8, 3, 'b', 2, 5, 5, 7, 1]

print(ls2.count(5))
print(ls2.count(0))
print(ls2.count('b'))


# # 元素排序 sort( ）函数用于对原列进行排序. 如果指定参数，则使用指定的比较函数。
# # 语法格式为： ls.sort(key=none, reverse=false)
# # 1, 元素是字符串的排序
ls3 = ['1', '3', '44', '23', '99', '88', '56', '233']
# 默认升序
ls3.sort()
print(le3)
# 降序 reverse=true
ls3.sort(reverse=true)
print(ls3)


ls3 = [1, 3, 44, 23, 99, 88, 56, 233]
# 默认升序
ls3.sort()
print(le3)
# 降序 reverse=true
ls3.sort(reverse=true)
print(ls3)


"""字典"""
# 字典的创新
# 1， 使用{} 创建字典语法格式：
# 字典名 = {'key1':'value1', 'key2':'value2', ..., 'keyn':valuen}
# 使用字符串作为key
d1 = {'python': 90,"可视化":89, "英语": 85}
print(type(d1))
# 使用元组和数字作为key
d2 = {(23, 89):"great", 30: [1, 3, 4]}
print(type(d2))
# 创建空元组
d3 ={}
print(d3)


# 2,用dict() 方法通过关键字的参数来创建字典格式：
# 字典名= dict(key1=value1, key2=value2,key3=value3)
d4 = dict(数字=98, 语文=87, 英语=89)
print(d4)


# # 字典元素的访问
# 1,，字典名[key]
d5 = {'数学': 95, '英语': 92, '语文': 84}
# 健存在，返回的是值value
print(d5['英语'])
# 键不存在，会引发一个keyerror错误
print(d5['python'])
#
# 2,get( ) 方法来获取指定键对应的值，语法格式： 字典名。get(key[,default])
d6 = {'数学': 95, '英语': 92, '语文': 84}
# 健存在
print(d6.get('语文'))
# 键存在，不写default,会返回none
print(d6.get('python'))
print(d6.get('python', '该键不存在'))


# # 字典添加键值对
d7 = {'数学': 95, '英语': 92, '语文': 84, 'python': 99}
d7['可视化'] = 99
print(d7)

# # 字典修改键值对
d8 = {'数学': 95, '英语': 92, '语文': 84, 'python': 99}
d8['英语'] = 100
print(d8)
#
#
# # 字典删除键值对
d9 = {'数学': 95, '英语': 92, '语文': 84, 'python': 99}
# 1, 使用del关键字
del d9['语文']
print(d9)
# 2, 使用pop('英语')
print(d9)